using System;
using System.Text;
using System.Reflection;
using System.ServiceModel;
using System.Collections.Generic;
using System.Runtime.Serialization;
using TDS = Tridion.ContentManager.Interop.TDS;
using TDSDefines = Tridion.ContentManager.Interop.TDSDefines;



#pragma warning disable 649
namespace Tridion.Gateway
{
	[DataContract]
	public class ItemField:Facade
	{
        internal ItemField(TDS.ItemField ItemField, bool ShallowCopy)
            : base(typeof(TDS._ItemField), ItemField, ShallowCopy)
		{
		}

		[DataMember(Name="Name")]
		private String name;
		public String Name
		{
			 get { return name; }
		}


		[DataMember(Name="Description")]
		private String description;
		public String Description
		{
			 get { return description; }
		}


		[DataMember(Name="FieldType")]
		private TDSDefines.EnumTridionWebSchemaFieldType fieldtype;
		public TDSDefines.EnumTridionWebSchemaFieldType FieldType
		{
			 get { return fieldtype; }
		}


		[DataMember(Name="Size")]
		private Int32 size;
		public Int32 Size
		{
			 get { return size; }
		}


		[DataMember(Name="ListType")]
		private TDSDefines.EnumTDSListTypes listtype;
		public TDSDefines.EnumTDSListTypes ListType
		{
			 get { return listtype; }
		}


		[DataMember(Name="Mandatory")]
		private Boolean mandatory;
		public Boolean Mandatory
		{
			 get { return mandatory; }
		}


		[DataMember(Name="MultiValued")]
		private Boolean multivalued;
		public Boolean MultiValued
		{
			 get { return multivalued; }
		}


        ////TODO:Fix
        //[DataMember(Name="value")]
        //private ItemFieldValues value;
        //public ItemFieldValues value
        //{
        //     get { return value; }
        //}


		[DataMember(Name="Definition")]
		private TridionWebSchemaField definition;
		public TridionWebSchemaField Definition
		{
			 get { return definition; }
		}


		[DataMember(Name="XPath")]
		private String xpath;
		public String XPath
		{
			 get { return xpath; }
		}


        protected override void Initialize(FieldInfo field, PropertyInfo property, Object value)
        {

        }

	}
}

/*
*/
